package com.ynet.middleground.riskmanage.bean;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @ClassName ChangeGoodsOrderReq
 * @Description 换货指令请求类
 * @Author zhangyongbin
 * @Date 2020/8/18 10:28
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "换货指令请求类", description = "换货指令请求类")
public class ChangeGoodsOrderReq extends BaseReqObj {
    private static final long serialVersionUID = -294251363636667599L;

    @ApiModelProperty(value = "系统标志（0：冷链、1：大港）", notes = "系统标志（0：冷链、1：大港）", required = true)
    @NotEmpty(message = "系统标志不能为空")
    private String chanType;

    @ApiModelProperty(value = "数据主键,若系统标志上送0，此项必填", notes = "数据主键,若系统标志上送0，此项必填")
    private String taskId;

    @ApiModelProperty(value = "船号，若系统标志上送1，此项必填", notes = "船号，若系统标志上送1，此项必填")
    private String shipNo;

    @ApiModelProperty(value = "货号，若系统标志上送1，此项必填", notes = "货号，若系统标志上送1，此项必填")
    private String sellNo;

    @ApiModelProperty(value = "质押监管数量,单位为件")
    private String watchAmount;

    @ApiModelProperty(value = "质押监管重量,冷链单位为千克，大港单位为吨", notes = "质押监管重量,冷链单位为千克，大港单位为吨", required = true)
    @NotEmpty(message = "质押监管重量不能为空")
    private String watchWeight;

    @ApiModelProperty(value = "指令（质押监管 ZYJG）", notes = "指令（质押监管 ZYJG）")
    private String order;

    @ApiModelProperty(value = "原押品主键", notes = "原押品主键", required = true)
    @NotEmpty(message = "原押品主键不能为空")
    private String oldtaskId;

    @ApiModelProperty(value = "原船号，若系统标志上送1，此项必填", notes = "原船号，若系统标志上送1，此项必填")
    private String oldShipNo;

    @ApiModelProperty(value = "原货号，若系统标志上送1，此项必填", notes = "原货号，若系统标志上送1，此项必填")
    private String oldSellNo;

    @ApiModelProperty(value = "是否部分解除", notes = "是否部分解除")
    private Boolean isPartialRelease;

    @ApiModelProperty(value = "解除后质押监管数量,单位为件")
    private String oldWatchAmount;

    @ApiModelProperty(value = "解除后质押监管重量,冷链单位为千克，大港单位为吨", notes = "解除后质押监管重量,冷链单位为千克，大港单位为吨", required = true)
    @NotEmpty(message = "解除后质押监管重量不能为空")
    private String oldWatchWeight;

    @ApiModelProperty(value = "解除指令（解除质押监管 JCZYJG）", notes = "解除指令（解除质押监管 JCZYJG）")
    private String oldOrder;

    @ApiModelProperty(value = "解除时，对应的原数据在中台的唯一标志;解除时必填，用于解除时和之前原质押的数据关联",
        notes = "解除时，对应的原数据在中台的唯一标志;解除时必填，用于解除时和之前原质押的数据关联", required = true)
    @NotNull(message = "解除的指令，对应的原数据在中台的唯一标志不能为空")
    private Integer trendId;
}
